const path = require('path')

function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  configureWebpack: config => {
    if (process.NODE_ENV === 'production') {
      config.mode = 'production'
    } else {
      config.mode = 'development'
    }
  },
  chainWebpack: config => {
    config.resolve.alias // 别名
      .set('@', resolve('./src'))
      .set('images', resolve('./src/assets/images'))
      .set('styles', resolve('./src/assets/styles'))
    // 修改或新增html-webpack-plugin的值，在index.html里面能读取htmlWebpackPlugin.options.title
    config.plugin('html')
      .tap(args => {
        args[0].title = 'Python IDE'
        return args
      })
  },
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  outputDir: 'dist',
  assetsDir: 'assets', // 静态资源地址
  lintOnSave: process.env.NODE_ENV !== 'production', // 保存时验证语法
  devServer: {
    open: true, // 在服务器启动时打开浏览器
    host: '0.0.0.0', // 指定使用地址，默认localhost，0.0.0.0代表可以被外界访问
    port: '8080', // 访问端口
    https: false, // 使用https
    hot: true, // 开启热加载
    hotOnly: false,
    proxy: {
      // 设置代理
      '/api': {
        target: 'http://127.0.0.1:5000',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },
    overlay: {
      warnings: false,
      errors: true
    }
  }
}
